package com.xzit.homework.动态代理;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class MonkeyProxyHandler implements InvocationHandler {
    private Object target;//被代理的对象;
    //构造方法
    public MonkeyProxyHandler(Object target) {
        this.target = target;
    }
    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("孙悟空：变成高翠兰，准备执行 " + method.getName() + " 方法！");
        if ("fightPig".equals(method.getName())) {
            System.out.println("孙悟空：一棒打飞了猪八戒！");
        } else if ("catchPig".equals(method.getName())) {
            System.out.println("孙悟空：金箍棒一挥，抓住了猪八戒！");
        } else {
            return method.invoke(target, args); // 默认调用原方法
        }
        return null;
    }
}
